home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / H-K / HyperStuff.cpt / HyperXCmd.h < prev    next >
Text File  |  1988-12-19  |  4KB  |  110 lines

  1. /*
  2.     FILE  : HyperXCmd.h - Hypercard include file
  3.     BUILT : 12/19/88
  4.     FONT  : Profont fixed-cell 9 point (available on GEnie)
  5.     FROM  : GEnie A.COHEN6
  6.     SOURCE: LightSpeed 'c' v3.0
  7.     TARGET: Macintosh II
  8.     
  9.     Taken from Appendix A Pg. 237 of the Apple Hypercard Script Language Guide
  10.     (c)Apple Computer, Inc.
  11. */
  12.  
  13. #ifndef    _HYPERCARD_
  14.  
  15. typedef    struct    XCmdBlock    {
  16. short    paramCount;
  17. Handle    params[16];
  18. Handle    returnValue;
  19. Boolean    passFlag;
  20.  
  21. void    (*entryPoint)();    /* to call back to HyperCard */
  22. short    request;
  23. short    result;
  24. long    inArgs[8];
  25. long    outArgs[4];
  26. }  XCmdBlock, *XCmdBlockPtr;
  27.  
  28. typedef struct Str31 {
  29. char guts[32];
  30. } Str31, *Str31Ptr;
  31.  
  32. /* result codes */
  33.  
  34. #define xresSucc    0
  35. #define    xresFail    1
  36. #define    xresNotImp    2
  37.  
  38.  
  39. /* request codes */
  40.  
  41. #define    xreqSendCardMessage    1
  42. #define    xreqEvalExpr        2
  43. #define    xreqStringLength    3
  44. #define    xreqStringMatch        4
  45. #define    xreqSendHCMessage    5
  46. #define    xreqZeroBytes        6
  47. #define    xreqPasToZero        7
  48. #define    xreqZeroToPas        8
  49. #define    xreqStrToLong        9
  50. #define    xreqStrToNum        10
  51. #define    xreqStrToBool        11
  52. #define    xreqStrToExt        12
  53. #define    xreqLongToStr        13
  54. #define    xreqNumToStr        14
  55. #define    xreqNumToHex        15
  56. #define    xreqBoolToStr        16
  57. #define    xreqExtToStr        17
  58. #define    xreqGetGlobal        18
  59. #define    xreqSetGlobal        19
  60. #define    xreqGetFieldByName    20
  61. #define    xreqGetFieldByNum    21
  62. #define    xreqGetFieldByID    22
  63. #define    xreqSetFieldByName    23
  64. #define    xreqSetFieldByNum    24
  65. #define    xreqSetFieldByID    25
  66. #define    xreqStringEqual        26
  67. #define    xreqReturnToPas        27
  68. #define    xreqScanToReturn    28
  69. #define    xreqScanToZero         39    /* Yes; no mistake, 39 is the correct value here. */
  70.  
  71.  
  72. /* 
  73.     Forward definitions of glue routines.  Main program must include 
  74.     HyperGlue.c  (comments in HyperGlue.c generally explain routines)
  75. */
  76.    
  77. typedef void (*MyProcPtr) ();
  78.  
  79. pascal void        SendCardMessage    (XCmdBlockPtr paramPtr, StringPtr msg);
  80. pascal Handle    EvalExpr        (XCmdBlockPtr paramPtr, StringPtr expr);
  81. pascal long        StringLength    (XCmdBlockPtr paramPtr, StringPtr strPtr);
  82. pascal Ptr        StringMatch        (XCmdBlockPtr paramPtr, StringPtr pattern, Ptr target);
  83. pascal void        SendHCMessage    (XCmdBlockPtr paramPtr, StringPtr msg);  
  84. pascal void        ZeroBytes        (XCmdBlockPtr paramPtr, Ptr dstPtr, long longCount);
  85. pascal Handle    PasToZero        (XCmdBlockPtr paramPtr, StringPtr pasStr);
  86. pascal void        ZeroToPas        (XCmdBlockPtr paramPtr, char *zeroStr, StringPtr pasStr);
  87. pascal long        StrToLong        (XCmdBlockPtr paramPtr, Str31 *strPtr);
  88. pascal long        StrToNum        (XCmdBlockPtr paramPtr, Str31 *str);
  89. pascal Boolean    StrToBool        (XCmdBlockPtr paramPtr, Str31 *str);
  90. pascal void        StrToExt        (XCmdBlockPtr paramPtr, Str31 *str, double *myext);
  91. pascal void        LongToStr        (XCmdBlockPtr paramPtr, long posNum, Str31 *mystr);
  92. pascal void        NumToStr        (XCmdBlockPtr paramPtr, long num, Str31 *mystr);
  93. pascal void        NumToHex        (XCmdBlockPtr paramPtr, long num, short nDigits, Str31 *mystr);
  94. pascal void        BoolToStr        (XCmdBlockPtr paramPtr, Boolean bool, Str31 *mystr);
  95. pascal void        ExtToStr        (XCmdBlockPtr paramPtr, double *myext, Str31 *mystr);
  96. pascal Handle    GetGlobal        (XCmdBlockPtr paramPtr, StringPtr globName);
  97. pascal void        SetGlobal        (XCmdBlockPtr paramPtr, StringPtr globName, Handle globValue);
  98. pascal Handle    GetFieldByName    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
  99. pascal Handle    GetFieldByNum    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
  100. pascal Handle    GetFieldByID    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldID);
  101. pascal void        SetFieldByName    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName, Handle fieldVal);
  102. pascal void        SetFieldByNum    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldNum, Handle fieldVal);
  103. pascal void        SetFieldByID    (XCmdBlockPtr paramPtr, Boolean cardFieldFlag, short fieldID, Handle fieldVal);
  104. pascal Boolean    StringEqual        (XCmdBlockPtr paramPtr, Str31 *str1, Str31 *str2);
  105. pascal void        ReturnToPas        (XCmdBlockPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  106. pascal void        ScanToReturn    (XCmdBlockPtr paramPtr, Ptr *scanHndl);
  107. pascal void        ScanToZero        (XCmdBlockPtr paramPtr, Ptr *scanHndl);
  108. #endif
  109.  
  110. #define _HYPERCARD_